﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UI.Application.Share.Reactor;

namespace UI.Application.Reactor.Services
{
    /* Modbus收发示例
     * Tx:042-17 79 00 00 00 06 01 06 00 20 04 B0
     * Rx:043-17 79 00 00 00 06 01 06 00 20 04 B0
     */

    public class ReactorCommandManager : IReactorCommandManager
    {
        public ushort HeatAddress { get ; set ; }
        public ushort CoolAddress { get ; set ; }

        public byte[] GetCoolByte(ushort v)
        {
            return GetBytes(CoolAddress, v);

        }

        public byte[] GetHeatByte(ushort v)
        {
            return GetBytes(HeatAddress, v);
        }


        private byte[] GetBytes(ushort address,ushort v) 
        {
            byte[] addresses = BitConverter.GetBytes(address);
            byte[] data = BitConverter.GetBytes(v);
            List<byte> result = new List<byte>()
            {
                0x97,//事务处理标识符高字节
                0x76,//事务处理标识符低字节
                0x00,//协议标识符
                0x00,//协议标识符
                0x00,//长度（高字符）
                0x06,//长度（低字符）
                0x01,//单元标识符
                0x06,//功能码
                addresses[1],//地址（高字节）
                addresses[0],//地址（低字节）
                data[1],//数据（高字节）
                data[0],//数据（低字节）
            };
            return result.ToArray();
        }
    }
}
